package _5匿名内部类;

public class TestDemo {
	public static void main(String[] args) 
	{
		
		// 局部内部类
//		class Dog extends Animal
//		{
//			public Dog()
//			{
//				name ="小狗";
//			}
//			
//			public void sing()
//			{
//				System.out.println(name+":汪汪");
//			}
//		}
//		Dog d = new Dog();
//		d.sing();
		
		
//		// 匿名内部类
		// (继承类)
//		// 创建了一个继承自Animal类的子类，这个子类没有名字,同时创建了这个匿名内部类的对象
//		Animal a = new Animal(){
//			// 重写了sing()方法
//			public void sing() {
//				System.out.println("动物:呼呼~~~~~");
//			};
//		};
//		a.sing();
		
		
		
		// 匿名内部类
		// (实现接口)
		// 定义了一个实现IFixAble接口的匿名内部类,并创建了该类的对象
		IFixAble f = new IFixAble() {
			@Override
			public void fix() {
				System.out.println("我是维修部的维修人员，帮你维修以下");
				
			}
		};
		f.fix();
	
	}

}

abstract class Animal
{
	String name="一种动物";
	
	public abstract void sing();
}

interface IFixAble
{
	
	public void fix();
}
